草庐IT

java outOfMemoryError 与 stringbuilder

全部标签

java - 如何以编程方式证明 StringBuilder 不是线程安全的?

如何以编程方式证明StringBuilder不是线程安全的?我试过了,但它不起作用:publicclassThreadsafe{publicstaticvoidmain(String[]args)throwsInterruptedException{longstartdate=System.currentTimeMillis();MyThread1mt1=newMyThread1();Threadt=newThread(mt1);MyThread2mt2=newMyThread2();Threadt0=newThread(mt2);t.start();t0.start();t.join

Java:String concat vs StringBuilder - 优化了,我该怎么办?

在thisanswer,它说(暗示)字符串连接无论如何都优化为StringBuilder操作,所以当我编写代码时,有什么理由在源代码中编写StringBuilder代码吗?请注意,我的用例与OP的问题不同,因为我正在连接/append数十万行。为了让自己更清楚:我很清楚它们之间的差异,只是我不知道是否值得真正编写StringBuilder代码,因为它的可读性较差,而且它的表亲,String类,应该是无论如何都会在编译过程中自动转换。 最佳答案 我认为StringBuilder与+的使用确实取决于您使用它的上下文。一般使用JDK1.6

java - StringBuilder.append 链是否比字符串连接更有效?

根据名为使用.append方法链而不是字符串连接的Netbeans提示LooksforstringconcatenationintheparameterofaninvocationoftheappendmethodofStringBuilderorStringBuffer.StringBuilder.append()真的比字符串连接更高效吗?代码示例StringBuildersb=newStringBuilder();sb.append(filename+"/");对比StringBuildersb=newStringBuilder();sb.append(filename).appe

javascript - JavaScript 是否有内置的 stringbuilder 类?

我看到afewcodeprojectsolutions.但是在JavaScript中是否有常规实现? 最佳答案 如果您必须为InternetExplorer编写代码,请确保您选择了使用数组连接的实现。使用+或+=运算符连接字符串在IE上非常慢。对于IE6尤其如此。在现代浏览器上,+=通常与数组连接一样快。当我必须进行大量字符串连接时,我通常会填充一个数组并且不使用字符串构建器类:varhtml=[];html.push("","","blablabla","","");returnhtml.join("");请注意,push方法接受

java - 为什么 StringBuilder#append(int) 在 Java 7 中比在 Java 8 中更快?

在调查littledebate时w.r.t.使用""+n和Integer.toString(int)将整数原语转换为字符串我写了这个JMH微基准:@Fork(1)@OutputTimeUnit(TimeUnit.MILLISECONDS)@State(Scope.Benchmark)publicclassIntStr{protectedintcounter;@GenerateMicroBenchmarkpublicStringintegerToString(){returnInteger.toString(this.counter++);}@GenerateMicroBenchmark

java - 使用 StringBuilder 替换所有出现的字符串?

我是否遗漏了什么,或者StringBuilder是否缺少与普通String类相同的“用字符串B替换所有出现的字符串A”功能?StringBuilder替换函数并不完全相同。有什么方法可以在不使用普通String类生成多个字符串的情况下更有效地做到这一点? 最佳答案 好吧,你可以写一个循环:publicstaticvoidreplaceAll(StringBuilderbuilder,Stringfrom,Stringto){intindex=builder.indexOf(from);while(index!=-1){builder

java - 最佳实践/性能 : mixing StringBuilder. 附加 String.concat

我试图了解最佳实践是什么,以及为什么要针对不同情况连接字符串文字和变量。例如,如果我有这样的代码StringBuildersb=newStringBuilder("AAAAAAAAAAAAA").append(B_String).append("CCCCCCCCCCC").append(D_String).append("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE").append("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");这是这样做的

c# - 我们如何在 StringBuilder 中添加字符串?

我知道我们可以使用StringBuilder附加字符串。有没有一种方法可以使用StringBuilder在字符串前面添加字符串(即在字符串前面添加字符串),这样我们就可以保持StringBuilder提供的性能优势? 最佳答案 使用位置参数设置为0的插入方法与前置(即在开头插入)相同。C#示例:varStringBuilder.Insert(0,"someThing");Java示例:varStringBuilder.insert(0,"someThing");它适用于C#和Java 关

java - 在循环中重用 StringBuilder 会更好吗?

我有一个关于使用StringBuilder的性能相关问题。在一个很长的循环中,我正在操作StringBuilder并将其传递给另一个方法,如下所示:for(loopcondition){StringBuildersb=newStringBuilder();sb.append("somestring");...sb.append(anotherString);...passToMethod(sb.toString());}在每个循环周期实例化StringBuilder是一个好的解决方案吗?像下面这样调用删除更好吗?StringBuildersb=newStringBuilder();fo

java - String、StringBuffer 和 StringBuilder

请告诉我比较String、StringBuffer和StringBuilder的实时情况? 最佳答案 可变性差异:String是immutable,如果您尝试更改它们的值,则会创建另一个对象,而StringBuffer和StringBuilder是可变的,因此它们可以更改其值。线程安全差异:StringBuffer和StringBuilder的区别在于StringBuffer是线程安全的。所以当应用程序只需要在单线程中运行时,最好使用StringBuilder。StringBuilder比StringBuffer更高效。情况:如果您